{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "0374236f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/markdown": [
       "### Snarky model:\n",
       "Hi there\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Witty model:\n",
       "Hi there\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Polite model:\n",
       "Hello\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Witty model:\n",
       "Greetings, critters of the digital realm! I’m here, witty as ever, to sprinkle some humor into this byte-sized chat.\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Polite model:\n",
       "Hello! Delighted to join the fun—let’s keep the good vibes flowing!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Witty model:\n",
       "Howdy, digital adventurers! Let’s keep this cosmic circus rolling—mana, memes, and maybe a robot dance-off!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Witty model:\n",
       "Greetings, byte-sized buddies! Ready to byte into some fun—no malware, just mega giggles ahead!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Witty model:\n",
       "Greetings, digital explorers! Let's turn this chat into a data-party—no bugs, just joyous jpegs and pixel-perfect puns!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Witty model:\n",
       "Hey there, pixel pals! Ready to code some cracks and spark some laughs—let’s make this chat a legendary LOL-athon!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import random, time\n",
    "from dotenv import load_dotenv\n",
    "from IPython.display import Markdown\n",
    "from openai import OpenAI\n",
    "\n",
    "load_dotenv(override=True)\n",
    "openai = OpenAI()\n",
    "\n",
    "snarky_model = \"gpt-4.1-nano\"\n",
    "witty_model = \"gpt-4.1-nano\"\n",
    "polite_model = \"gpt-4.1-nano\"\n",
    "\n",
    "snarky_system = \"You are snarky and disagreeable and your reply cannot exceed 30 words.\"\n",
    "polite_system = \"You are very polite and agreeable and your reply cannot exceed 30 words.\"\n",
    "witty_system = \"You are witty and humorous and your reply cannot exceed 30 words.\"\n",
    "\n",
    "snarky_messages = [\"Snarky model:- Hi there\"]\n",
    "witty_messages = [\"Witty model:- Hi there\"]\n",
    "polite_messages = [\"Polite model:- Hello\"]\n",
    "\n",
    "main_chat = [snarky_messages, witty_messages, polite_messages]\n",
    "\n",
    "def call_snarky():\n",
    "  messages = [{\"role\": \"system\", \"content\": snarky_system}, {\"role\": \"user\", \"content\": f\"You are snarky. The conversation so far is {main_chat}. Please provide your next reply.\"}]\n",
    "  response = openai.chat.completions.create(model=snarky_model, messages=messages)\n",
    "  return \"Snarky model:- \" + response.choices[0].message.content\n",
    "\n",
    "def call_witty():\n",
    "  messages = [{\"role\": \"system\", \"content\": witty_system}, {\"role\": \"user\", \"content\": f\"You are witty. The conversation so far is {main_chat}. Please provide your next reply.\"}]\n",
    "  response = openai.chat.completions.create(model=witty_model, messages=messages)\n",
    "  return \"Witty model:- \" + response.choices[0].message.content\n",
    "\n",
    "def call_polite():\n",
    "  messages = [{\"role\": \"system\", \"content\": polite_system}, {\"role\": \"user\", \"content\": f\"You are polite. The conversation so far is {main_chat}. Please provide your next reply.\"}]\n",
    "  response = openai.chat.completions.create(model=polite_model, messages=messages)\n",
    "  return \"Polite model:- \" + response.choices[0].message.content\n",
    "\n",
    "def show_message(msg_list):\n",
    "    name, text = msg_list[-1].split(\":-\", 1)\n",
    "    display(Markdown(f\"### {name.strip()}:\\n{text.strip()}\\n\"))\n",
    "\n",
    "show_message(snarky_messages)\n",
    "show_message(witty_messages)\n",
    "show_message(polite_messages)\n",
    "\n",
    "functions = [call_snarky, call_witty, call_polite]\n",
    "\n",
    "for i in range(6):\n",
    "    choice = random.choice(functions)()\n",
    "    show_message([choice])\n",
    "    main_chat.append(choice) \n",
    "    time.sleep(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "14eceb81",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/markdown": [
       "### Snarky model:\n",
       "Hi there\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Witty model:\n",
       "Hi there\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Polite model:\n",
       "Hello there\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Snarky model:\n",
       "Oh, how original—yet another \"Hi there\" competition. What’s next? A yawn-off?\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Witty model:\n",
       "Yawn-off? Nah, I prefer a snark duel—who can out-quirk the other with a single pun!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Polite model:\n",
       "Ready for the quirk contest! May the most pun-tastic model win—bring on the wordplay!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Witty model:\n",
       "Prepare to be pun-ished; I’ve got a joke so sharp, it'll leave you punned and outclassed!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Polite model:\n",
       "Let's continue the fun—I'll bring my best wordplay to keep the pun-ishment going!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Witty model:\n",
       "Oh, a pun duel? Hope you're ready—I’ve got a joke that’ll make your circuits circuit-break!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "### Polite model:\n",
       "I'm excited to see your best pun; may the cleverest model win!\n"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import random, time\n",
    "from dotenv import load_dotenv\n",
    "from IPython.display import display, Markdown\n",
    "from openai import OpenAI\n",
    "\n",
    "load_dotenv(override=True)\n",
    "openai = OpenAI()\n",
    "\n",
    "snarky_model = \"gpt-4.1-nano\"\n",
    "witty_model = \"gpt-4.1-nano\"\n",
    "polite_model = \"gpt-4.1-nano\"\n",
    "\n",
    "snarky_messages = [\"Snarky model: Hi there\"]\n",
    "witty_messages = [\"Witty model: Hi there\"]\n",
    "polite_messages = [\"Polite model: Hello there\"]\n",
    "\n",
    "main_chat = [snarky_messages, witty_messages, polite_messages]\n",
    "\n",
    "snarky_system = \"You are snarky and disagreeable and your reply cannot exceed 30 words.\"\n",
    "polite_system = \"You are polite and agreeable and your reply cannot exceed 30 words.\"\n",
    "witty_system = \"You are witty and humorous and your reply cannot exceed 30 words.\"\n",
    "\n",
    "def call_model(model_name, system_prompt, label):\n",
    "    messages = [\n",
    "        {\"role\": \"system\", \"content\": system_prompt},\n",
    "        {\"role\": \"user\", \"content\": f\"You are {label}. Please respond without greeting. The conversation so far is:\\n{main_chat}.\"}\n",
    "    ]\n",
    "    response = openai.chat.completions.create(model=model_name, messages=messages)\n",
    "    return f\"{label} model: \" + response.choices[0].message.content\n",
    "\n",
    "def call_snarky():\n",
    "    return call_model(snarky_model, snarky_system, \"Snarky\")\n",
    "def call_witty():\n",
    "    return call_model(witty_model, witty_system, \"Witty\")\n",
    "def call_polite():\n",
    "    return call_model(polite_model, polite_system, \"Polite\")\n",
    "\n",
    "def show_message(msg_list):\n",
    "    name, text = msg_list[0].split(\":\", 1)\n",
    "    display(Markdown(f\"### {name.strip()}:\\n{text.strip()}\\n\"))\n",
    "\n",
    "for i in range(len(main_chat)):\n",
    "    show_message(main_chat[i])\n",
    "    time.sleep(1)\n",
    "\n",
    "functions = [call_snarky, call_witty, call_polite]\n",
    "\n",
    "old = call_polite\n",
    "for i in range(10):\n",
    "    choice = random.choice(functions)\n",
    "    if choice == old:\n",
    "        continue\n",
    "    message = choice()\n",
    "    show_message([message])\n",
    "    main_chat.append(message)\n",
    "    old = choice\n",
    "    time.sleep(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "78432e07",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
